package com.xyht.sca_s.student_manage_system.modules.chargePayment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.chargePayment.entity.SmsWnsChargePaymentRecord;
import com.xyht.sca_s.student_manage_system.modules.chargePayment.entity.req.SmsWnsChargePaymentRecordReq;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.req.OfflineRefundReq;

import java.util.Date;

/**
 * <p>
 * 缴费记录表 服务类
 * </p>
 *
 * @author XYHT
 * @since 2024-02-05
 */
public interface SmsWnsChargePaymentRecordService extends IService<SmsWnsChargePaymentRecord> {

    ResponseResult listPlanNeedPay(Integer pageNum, Integer pageSize, String userId);

    ResponseResult listPaidPlan(Integer pageNum, Integer pageSize, String userId);

    ResponseResult listPaymentRecord(Integer pageNum, Integer pageSize, String userId);

    ResponseResult listCategoryDetail(String planId, String userId);

    ResponseResult payment(SmsWnsChargePaymentRecordReq recordReq, String userId);

    ResponseResult getStudentPaymentRecord(Integer pageNum, Integer pageSize, String stuName, Integer type);

    ResponseResult getStudentPaymentRecordDetail(Integer pageNum, Integer pageSize, String stuName, String recordId);

    ResponseResult paymentFlow(Integer pageNum, Integer pageSize, Integer type, Integer mode, Integer orgId, Date startTime, Date endTime, String searchStr);

    ResponseResult removePlanOfflineRefund(OfflineRefundReq req);

    ResponseResult paymentFlowStatistics(Integer type, Integer stepNum);
}
